function LJForce(frame) {

    // Read in a frame, and calculate Lennard-Jones forces using the parameters in the frame.atoms

    var thisAtom;
    var otherAtom;
    var forces = new Array();
    var potentialEnergy = 0;
    var energyConstant = 0.1;

    timer = 0

    // Fill the forces array with 0-vectors
    for (var i = 0; i < frame.atoms.length; i++)
    {
        forces[i] = new PhiloGL.Vec3(0,0,0);
    };
    for (i = 0; i < frame.atoms.length; i++) // loop over every atom
    {
        thisAtom = frame.atoms[i];
        for (var j = i + 1; j < frame.atoms.length; j++) // loop over all subsequent atoms
        {

            // var tStart = window.performance.webkitNow();
            otherAtom = frame.atoms[j];
            // Get the vector pointing from otherAtom to thisAtom
            var distanceVector = thisAtom.pos.sub(otherAtom.pos);
            // var distance = 
            // console.log(distanceVector.norm())

            // VDW interaction distance = sum of two atoms' 'radius' values
            // var VDW = thisAtom.radius + otherAtom.radius;

            // temporary; we should read in the vdw radius from our input files
            var r0 = 2.6

            // Calculate a Lennard-Jones 6-12 force imparted to thisAtom by otherAtom
            unitVector = distanceVector.unit();

            var rinv = 1/distanceVector.norm()
            var rinv6 = Math.pow(rinv,6)
            var rinv12 = Math.pow(rinv6,2)
            var r0_6 = Math.pow(r0,6)
            var r0_12 = Math.pow(r0,2)

            var ijForce = unitVector.scale(energyConstant*12*(r0_12*r0*rinv12*rinv - r0_6*r0*rinv6*rinv))

            // Forgot some prefactors here!
            // var ijForce = distanceVector.unit().scale(energyConstant *(Math.pow(VDW/distanceVector.norm(),13)/VDW - Math.pow(VDW/distanceVector.norm(),7)/VDW) );

            var jiForce = ijForce.scale(-1); // Newton's 3rd!

            // var ijEnergy = energyConstant * (Math.pow(VDW/distanceVector.norm(),12) - (Math.pow(VDW/distanceVector.norm(),6)) );
            var ijEnergy = energyConstant*(r0_12*rinv12 - 2*r0_6*rinv6)

            // var tEnd = window.performance.webkitNow();
            // add these forces to thisAtom and otherAtom
            forces[i].$add(ijForce);
            forces[j].$add(jiForce);

            potentialEnergy = potentialEnergy + ijEnergy;

            // frame.potentialEnergy.$add(ijEnergy)
            // console.log(forces[i]);
        };
        // timer += (tEnd-tStart)/($("#EulerRun").val()*frame.atoms.length);
    };
    frame.potentialEnergy = potentialEnergy;

    return forces;
};